//
//  ZSSegmentView.h
//  Fangxiaov
//
//  Created by safiri on 2017/3/11.
//  Copyright © 2017年 com.f. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <Masonry/Masonry.h>
#import "ZSTagButton.h"

@protocol ZSSegmentButtonViewDelegate <NSObject>

/**
 点击某个按钮时代理回调

 @param tag 按钮tag
 */
- (void)segmentButtonSelectTag:(NSInteger)tag;

@end

/**
 自定义SegmentButtonView 依托Masonry
 一行展示所有项目按钮，无滑动功能，各个按钮平均分配自己的宽度
 另外，可滚动的效果，宽度自动调整效果等，用ZSMenuView自定义实现比较好
 */
@interface ZSSegmentButtonView : UIView

/**
 segment 各个按钮标题数组
 */
@property (nonatomic ,strong ,readonly) NSArray *titleArray;

/**
 预定义的样式统一的tag，不设置就使用默认的
 */
@property (nonatomic ,strong ,readonly) ZSButtonTag *sameTag;

/**
 delegate
 */
@property (nonatomic ,weak) id <ZSSegmentButtonViewDelegate>segmentButtonViewDelegate;

/**
 绘制各个seg button,在init初始化之后马上调用

 @param titleArray 各个按钮标题数组
 @param sameTag 各个按钮的配置类
 */
- (void)createOrRefreshSegViewWithTitleArray:(NSArray *)titleArray tag:(ZSButtonTag *)sameTag;


/**
 当前被选中按钮的Tag值
 */
@property (nonatomic ,assign ,readonly) NSInteger selectedTag;

/**
 滑动指示器控件
 */
@property (nonatomic ,strong) UIView *lineView;
/**
 lineView控件左约束(用作lineView滚动)
 */
@property (nonatomic, strong) MASConstraint *lineViewLeftConstraint;

/**
 lineView控件左右内边距
 */
@property (nonatomic ,assign) NSInteger lineViewPaddingForLeftRight;

/**
 lineView控件颜色
 */
@property (nonatomic ,strong) UIColor *lineViewBackgroundColor;

/**
 lineView控件高度
 */
@property (nonatomic ,assign) CGFloat lineViewHeight;


/**
 选择某个按钮

 @param tag 按钮Tag
 @param animated 是否有选择动画
 */
- (void)selectSegmentButtonWithTag:(NSInteger)tag animated:(BOOL)animated;

/**
 根据系数移动lineView控件

 @param ratio 移动系数
 @param animated 是否有选择动画
 */
- (void)moveLineWithRatio:(CGFloat)ratio animated:(BOOL)animated;
@end
